#ifndef Sys_local_h__
#define Sys_local_h__

#include "Sys_public.h"

#if (INF_PLATFORM == PLATFORM_WIN32) || (INF_PLATFORM == PLATFORM_WIN64)
#include <windows.h>
#include <windowsx.h>
#include <io.h>
#include <shlobj.h>
#include <direct.h>
#include <cstdio>
#include <Shlwapi.h>
#include <shellapi.h>
#else
#include <glob.h>
#endif

struct TranslateState {
    sysKey_t    keyc;
    bool        down;
};

extern TranslateState translate[256];

void	Sys_QueEvent( int time, sysEventType_t type, int key, int value, int value2, int ptrLength, void *ptr );


void Sys_CreateWindow(const char title[], int width, int height);

bool Sys_GetWindowRun();

bool Sys_GetWindowActive();

void Sys_WindowFrame();

HWND Sys_GetWndHandle();

class infSys_Local: public infSys {
public:
    infSys_Local();
    ~infSys_Local();

    void			DebugPrintf( const char *fmt, ... );
    void			DebugVPrintf( const char *fmt, va_list arg );

    float			GetClockTicks( void );
    float			ClockTicksPerSecond( void );

    long long       GetTimeStamp( void* o );

    const char*     GetExePath() const;

    int     MessageBoxChar( const char* title, const char* text, messageBoxType_t type );
    int     MessageBoxWChar( const wchar_t* title, const wchar_t* text, messageBoxType_t type );

};




#endif // Sys_local_h__
